package test.serverframe.armc.server.manager.service.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import test.serverframe.armc.server.manager.dao.mapper.TagMapper;
import test.serverframe.armc.server.manager.domain.Tag;
import test.serverframe.armc.server.manager.domain.TaskInvoke;
import test.serverframe.armc.server.manager.service.BaseService;

import java.util.List;
import java.util.UUID;

/**
 * @Author: Uaena
 * @Date: 2018/12/29 0029 17:07
 * @Version 1.0
 */
@Service
public class TagServiceImpl extends BaseServiceImpl<Tag, String> {
    @Autowired
    private TagMapper tagMapper;


    @Override
    protected String getMapperName() {
        return TagMapper.class.getName();
    }

    @Transactional
    public List<Tag> findTagsByInvokeId(String invokeId) {
        return tagMapper.findTagsByTaskInvokeId(invokeId);
    }

    @Transactional
    public List<TaskInvoke> findInvokesByTagId(String tagId) {
        return tagMapper.findInvokesByTagId(tagId);
    }

    /**
     * 增加一个标签
     * @param tag 标签实体
     * @return 成功数量
     */
    @Transactional
    public Integer addTag(Tag tag) {
        tag.setId(UUID.randomUUID().toString());
        return tagMapper.insert(tag);
    }

    /**
     * 根据标签ID删除一个标签
     * @param tagId 标签ID
     * @return 成功数量
     */
    @Transactional
    public Integer deleteTag(String tagId) {
        return tagMapper.deleteByPrimaryKey(tagId);
    }

    /**
     * 修改标签
     * @param tag 标签实体
     * @return 成功数量
     */
    @Transactional
    public Integer updataTag(Tag tag) {
        return tagMapper.updateByPrimaryKey(tag);
    }

}
